function myInstanceof(left, right) {
  // 获取对象的原型
  // let proto = Object.getPrototypeOf(left)
  let proto = left.__proto__;

  // 获取构造函数的 prototype 对象
  let prototype = right.prototype; 
 
  // 判断构造函数的 prototype 对象是否在对象的原型链上
  while (true) {
    if (!proto) return false;
    if (proto === prototype) return true;
    // 如果没有找到，就继续从其原型上找，Object.getPrototypeOf方法用来获取指定对象的原型
    // proto = Object.getPrototypeOf(proto);
    proto = left.__proto__;

  }
}

var arr = [1, 2, 3]
console.log(myInstanceof(arr, Array))